package com.cn.date.date;

import java.util.Date;

/**
 * Date常用方法
 * 1. getTime():获取自 1970-01-01 00:00:00 UTC 起的毫秒数（时间戳）。
 * 2. setTime(long time): 设置 Date 对象的时间为指定的时间戳。
 * 3. toString(): 返回日期对象的字符串表示形式。
 * 4. before(Date when) 和 after(Date when):用于比较两个日期。
 * 5. compareTo(Date anotherDate)
 *  比较两个日期的顺序：
 * 	    返回负数：当前日期在 anotherDate 之前。
 * 	    返回零：两个日期相等。
 * 	    返回正数：当前日期在 anotherDate 之后。
 * 6.
 */
public class Date_02_Methods {
    public static void main(String[] args) {
        //1. getTime():获取自 1970-01-01 00:00:00 UTC 起的毫秒数（时间戳）。
        Date date1 = new Date();
        long timestamp = date1.getTime();
        System.out.println("时间戳: " + timestamp);

        //2. setTime(long time): 设置 Date 对象的时间为指定的时间戳。
        Date date2 = new Date();
        date2.setTime(1732435200000L); // 设置为 Sun Nov 24 16:00:00 CST 2024
        System.out.println("设置后的时间: " + date2);

        //3. toString(): 返回日期对象的字符串表示形式。
        Date date3 = new Date();
        System.out.println("toString 方法: " + date3.toString());//Thu Nov 21 11:15:03 CST 2024

        //4. before(Date when) 和 after(Date when):用于比较两个日期。
        Date now1 = new Date();
        Date future1 = new Date(System.currentTimeMillis() + 100000); // 当前时间 + 100 秒
        System.out.println("是否在未来之前: " + now1.before(future1));
        System.out.println("是否在未来之后: " + now1.after(future1));

        //5. compareTo(Date anotherDate)
        // 比较两个日期的顺序：
        //	    返回负数：当前日期在 anotherDate 之前。
        //	    返回零：两个日期相等。
        //	    返回正数：当前日期在 anotherDate 之后。
        Date now2 = new Date();
        Date future2 = new Date(System.currentTimeMillis() + 100000);
        System.out.println("比较结果: " + now2.compareTo(future2)); // 输出负数

    }
}
